home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / cxtw107.zip / EXAMPLE.DOC < prev    next >
Text File  |  1995-07-20  |  24KB  |  794 lines

  1.  
  2.  
  3.         EXAMPLE.DOC
  4.  
  5.         This file describes the use of CFT and CST,  the  main  parts  of
  6.         CXT,  the  C  EXPLORATION  TOOLS.  The  example session shows the
  7.         processing of a small program composed of two source  files  X1.C
  8.         and X2.C and one include file X.H as listed below.  When invoked,
  9.         the program produces the following output:
  10.  
  11.              hello world ....................
  12.  
  13.         The source code of the files is as follows:
  14.  
  15.         SOURCE LISTING 1: X1.C
  16.              #include <stdio.h>
  17.              #include "x.h"
  18.  
  19.              WORD main(void);
  20.              VOID x1(void);
  21.  
  22.              WORD main(void)
  23.              {
  24.                x1();
  25.                y1();
  26.                return(0);
  27.              }
  28.  
  29.              static VOID x2(void)
  30.              {
  31.                printf("hello ");
  32.              }
  33.  
  34.              VOID x1(VOID)
  35.              {
  36.                x2();
  37.              }
  38.         END OF SOURCE LISTING 1
  39.  
  40.         SOURCE LISTING 2: X2.C
  41.              #include <stdio.h>
  42.              #include "x.h"
  43.  
  44.              VOID y1(VOID);
  45.              static int x1(void);
  46.              static void x3(void);
  47.  
  48.              VOID y1(VOID)
  49.              {
  50.                x1();
  51.              }
  52.  
  53.              static char x2(VOID)
  54.              {
  55.                printf("world ");
  56.                x3();
  57.                return(1);
  58.              }
  59.  
  60.  
  61.                                       - 1 -
  62.  
  63.  
  64.  
  65.              static int x1(void)
  66.              {
  67.                x2();
  68.                return(1);
  69.              }
  70.  
  71.              static void x3(void)
  72.              {
  73.                static i = 0;
  74.  
  75.                printf(".");
  76.  
  77.                if (++i < 20)
  78.                  x3();
  79.              }
  80.         END OF SOURCE LISTING 2
  81.  
  82.         SOURCE LISTING 3: X.H
  83.              typedef void    VOID;
  84.              typedef char    BYTE;
  85.              typedef int     WORD;
  86.              typedef long    DWORD;
  87.  
  88.              typedef struct _s_x
  89.              {
  90.                BYTE   a;
  91.                WORD   b;
  92.                BYTE   string[20];
  93.                FILE  *fptr;
  94.              } S_XT;
  95.  
  96.              extern VOID y1(VOID);
  97.         END OF SOURCE LISTING 3
  98.  
  99.         First of all, the two source files X1.C and X2.C are processed by
  100.         CFT to look for  the  functions  and  their  hierarchy  with  the
  101.         following command line (see documentation for description):
  102.  
  103.              CFT -m -rauspMP -TMSC70,L -cs -Cs -na -Zs -z x?.c
  104.  
  105.         The  resulting  screen  output  during processing is shown below.
  106.         Besides the default information about the file actually processed
  107.         there are also some warnings given.  (NOTE: Some of the following
  108.         output lines are truncated due to their length.)
  109.  
  110.         SCREEN OUTPUT
  111.  
  112.         CFT (TM) C FUNCTION TREE GENERATOR 2.12   Copyright (C) J.M 1988-
  113.  
  114.         processing C:/C/CXT/DOC/X1.C
  115.         C:/C/CXT/DOC/X1.C(15):  warning: function 'x2' definition used as
  116.         prototype
  117.         processing C:/C/CXT/DOC/X2.C
  118.         C:/C/CXT/DOC/X2.C(14): warning: function 'x2' definition used  as
  119.         prototype
  120.  
  121.  
  122.                                       - 2 -
  123.  
  124.  
  125.  
  126.         writing output file CFT.LST
  127.  
  128.         END OF SCREEN OUTPUT
  129.  
  130.         The  finally  generated  output  file  CFT.LST  has the following
  131.         listed contents. For further information about the meaning of the
  132.         several sections listed in the output file see the  CFT  and  CST
  133.         documentation.
  134.  
  135.         CFT OUTPUT: CFT.LST
  136.  
  137.         ╔═══════════════════════════════════════════════════════════════
  138.         ║    CFT (TM) C FUNCTION TREE GENERATOR 2.12   Copyright (C) J.M
  139.         ╚═══════════════════════════════════════════════════════════════
  140.  
  141.  
  142.         ╔═══════════════════════════════════════════════════════════════
  143.         ║        CFT is part of CXT - the C EXPLORATION TOOLS
  144.         ║        You are expressly prohibited from selling this software
  145.         ║        of it in any form, distributing it with another product
  146.         ║        removing this notice. This software is Copyright (C)
  147.         ║        File creation date: Sat Nov 21 13:08:22 1992
  148.         ╚═══════════════════════════════════════════════════════════════
  149.  
  150.         ╔═══════════════════════════════════════════════════════════════
  151.         ║  EXAMPLE: int test()  (9999) <DMPCA> <TEST.C, 100>
  152.         ║  - int          : function return type
  153.         ║  - test()       : function name
  154.         ║  - (9999)       : function cross reference number
  155.         ║  - <DMPCA>      : function found as D=definition, M=macro, P=P
  156.         ║                   C=function call, A=assembler function
  157.         ║  - <TEST.C, 100>: file name, line number
  158.         ╚═══════════════════════════════════════════════════════════════
  159.  
  160.  
  161.         ╔═══════════════════════════════════════════════════════════════
  162.         ║                     FUNCTION CALLTREE HIERARCHY LISTING
  163.         ╚═══════════════════════════════════════════════════════════════
  164.  
  165.         WORD main()  (1) <DP> <X1.C, 8>
  166.          ├ VOID x1()  (2) <DPC> <X1.C, 20>
  167.          │  └ static VOID x2()  (3) <DC> <X1.C, 15>
  168.          │     └ int printf()  (4) <PC> <?>
  169.          │
  170.          └ VOID y1()  (5) <DPC> <X2.C, 9>
  171.             └ static int x1()  (6) <DPC> <X2.C, 21>
  172.                └ static char x2()  (7) <DC> <X2.C, 14>
  173.                   ├ int printf()
  174.                   └ static void x3()  (8) <DPC> <X2.C, 27>
  175.                      ├ int printf()
  176.                      └ static void x3()  ...recursive call of (8)
  177.  
  178.         WORD main()  ...relations shown at (1)
  179.  
  180.         int printf()  ...relations shown at (4)
  181.  
  182.  
  183.                                       - 3 -
  184.  
  185.  
  186.  
  187.         VOID x1()  ...relations shown at (2)
  188.  
  189.         static int x1()  ...relations shown at (6)
  190.  
  191.         static VOID x2()  ...relations shown at (3)
  192.  
  193.         static char x2()  ...relations shown at (7)
  194.  
  195.         static void x3()  ...relations shown at (8)
  196.  
  197.         VOID y1()  ...relations shown at (5)
  198.  
  199.  
  200.         ╔═══════════════════════════════════════════════════════════════
  201.         ║               TOTAL NUMBER OF FUNCTIONS REFERENCED :    8
  202.         ║               NUMBER OF FUNCTION DEFINITIONS       :    7
  203.         ║               NUMBER OF UNDEFINED FUNCTIONS        :    1
  204.         ║               DIRECTED CALL GRAPH WITH 8 NODES AND 10 CONNECTI
  205.         ╚═══════════════════════════════════════════════════════════════
  206.  
  207.  
  208.         ╔═══════════════════════════════════════════════════════════════
  209.         ║                             UNDEFINED FUNCTIONS
  210.         ╚═══════════════════════════════════════════════════════════════
  211.  
  212.         int printf()  (4) <PC> ...first found in <STDIO.H, 256>
  213.  
  214.  
  215.         ╔═══════════════════════════════════════════════════════════════
  216.         ║                           FUNCTION CALL STATISTICS
  217.         ╚═══════════════════════════════════════════════════════════════
  218.  
  219.         VOID x1()  (2) <DPC> <1 calls>
  220.  
  221.         static int x1()  (6) <DPC> <1 calls>
  222.  
  223.         static VOID x2()  (3) <DC> <1 calls>
  224.  
  225.         static char x2()  (7) <DC> <1 calls>
  226.  
  227.         VOID y1()  (5) <DPC> <1 calls>
  228.  
  229.         static void x3()  (8) <DPC> <2 calls>
  230.  
  231.         int printf()  (4) <PC> <3 calls>
  232.  
  233.  
  234.         ╔═══════════════════════════════════════════════════════════════
  235.         ║                         FUNCTION CALLER-MEMBER LIST
  236.         ╚═══════════════════════════════════════════════════════════════
  237.  
  238.               <no callers>
  239.         main()  (1) <0, 2>
  240.               x1()  (2) <1>
  241.               y1()  (5) <1>
  242.  
  243.  
  244.                                       - 4 -
  245.  
  246.  
  247.  
  248.               main()  (1) <1>
  249.         x1()  (2) <1, 1>
  250.               x2()  (3) <1>
  251.  
  252.               y1()  (5) <1>
  253.         x1()  (6) <1, 1>
  254.               x2()  (7) <1>
  255.  
  256.               x1()  (2) <1>
  257.         x2()  (3) <1, 1>
  258.               printf()  (4) <1>
  259.  
  260.               x1()  (6) <1>
  261.         x2()  (7) <1, 2>
  262.               printf()  (4) <1>
  263.               x3()  (8) <1>
  264.  
  265.               main()  (1) <1>
  266.         y1()  (5) <1, 1>
  267.               x1()  (6) <1>
  268.  
  269.               x2()  (7) <1>
  270.               x3()  (8) <1, recursion>
  271.         x3()  (8) <2, 2>
  272.               printf()  (4) <1>
  273.               x3()  (8) <1, recursion>
  274.  
  275.               x2()  (7) <1>
  276.               x2()  (3) <1>
  277.               x3()  (8) <1>
  278.         printf()  (4) <3, 0>
  279.               <no members>
  280.  
  281.  
  282.         ╔═══════════════════════════════════════════════════════════════
  283.         ║                         FUNCTION CALL REFERENCE LIST
  284.         ╚═══════════════════════════════════════════════════════════════
  285.  
  286.         main()  (1) [3]: 8
  287.  
  288.         printf()  (4) [1]: 256
  289.               [3]: 16
  290.               [4]: 15 30
  291.  
  292.         x1()  (2) [3]: 20
  293.               [3]: 9
  294.  
  295.         x1()  (6) [4]: 21
  296.               [4]: 10
  297.  
  298.         x2()  (3) [3]: 15
  299.               [3]: 21
  300.  
  301.         x2()  (7) [4]: 14
  302.               [4]: 22
  303.  
  304.  
  305.                                       - 5 -
  306.  
  307.  
  308.  
  309.         x3()  (8) [4]: 27
  310.               [4]: 16 33
  311.  
  312.         y1()  (5) [4]: 9
  313.               [3]: 10
  314.  
  315.         FILE INDEX LIST
  316.            1 G:/C700/INCLUDE/STDIO.H
  317.            2 C:/C/CXT/DOC/X.H
  318.            3 C:/C/CXT/DOC/X1.C
  319.            4 C:/C/CXT/DOC/X2.C
  320.  
  321.  
  322.         ╔═══════════════════════════════════════════════════════════════
  323.         ║               CRITICAL FUNCTION CALL PATH  (NL...nestinglevel)
  324.         ╚═══════════════════════════════════════════════════════════════
  325.  
  326.         main()  (1) (NL 0)
  327.          └ y1()  (5) (NL 1)
  328.             └ x1()  (6) (NL 2)
  329.                └ x2()  (7) (NL 3)
  330.                   └ x3()  (8) (NL 4)
  331.                      ├ printf()  (4) (NL 5)
  332.                      └ x3()  ...recursive call of (8)
  333.  
  334.         x2()  (3) (NL 0)
  335.          └ printf()  (NL 1)
  336.  
  337.         x1()  (2) (NL 0)
  338.          └ x2()  ...relations shown at (3) (NL 1)
  339.  
  340.  
  341.         ╔═══════════════════════════════════════════════════════════════
  342.         ║                    SOURCE FILE - INCLUDE FILE DEPENDENCY
  343.         ╚═══════════════════════════════════════════════════════════════
  344.  
  345.         C:/C/CXT/DOC/X1.C :
  346.                 G:/C700/INCLUDE/STDIO.H
  347.                 C:/C/CXT/DOC/X.H
  348.  
  349.         C:/C/CXT/DOC/X2.C :
  350.                 G:/C700/INCLUDE/STDIO.H
  351.                 C:/C/CXT/DOC/X.H
  352.  
  353.  
  354.         ╔═══════════════════════════════════════════════════════════════
  355.         ║                      FUNCTION TABLE: C:/C/CXT/DOC/X1.C
  356.         ╚═══════════════════════════════════════════════════════════════
  357.  
  358.         LINE      FUNCTION   [SRC BYTES,CMNT BYTES,LINES,BYTES/LINE,FUNCS
  359.         CALLED,CTRL STMTS,BRACE LVLS]
  360.         8    : WORD main()  (1) [29,0,4,7.25,2,0,1]
  361.         15   : static VOID x2()  (3) [22,0,2,11.00,1,0,1]
  362.         20   : VOID x1()  (2) [10,0,2,5.00,1,0,1]
  363.  
  364.  
  365.  
  366.                                       - 6 -
  367.  
  368.  
  369.         [3 FUNCTIONS,  AVERAGE VALUES: 20.33,  0.00,  2.67,  7.63,  1.33,
  370.         0.00, 1.00]
  371.         NOTE: NONE OF THESE FUNCTIONS WILL BE CALLED OUTSIDE THIS FILE!
  372.  
  373.  
  374.         ╔═══════════════════════════════════════════════════════════════
  375.         ║                      FUNCTION TABLE: C:/C/CXT/DOC/X2.C
  376.         ╚═══════════════════════════════════════════════════════════════
  377.  
  378.         LINE      FUNCTION   [SRC BYTES,CMNT BYTES,LINES,BYTES/LINE,FUNCS
  379.         CALLED,CTRL STMTS,BRACE LVLS]
  380.         9    : VOID y1()  (5) [10,0,2,5.00,1,0,1]
  381.         14   : static char x2()  (7) [41,0,4,10.25,2,0,1]
  382.         21   : static int x1()  (6) [22,0,3,7.33,1,0,1]
  383.         27   : static void x3()  (8) [58,0,7,8.29,2,1,1]
  384.         [4 FUNCTIONS,  AVERAGE VALUES: 32.75,  0.00,  4.00,  8.19,  1.50,
  385.         0.25, 1.00]
  386.  
  387.  
  388.         ╔═══════════════════════════════════════════════════════════════
  389.         ║  FILES REFERENCED                         : 2
  390.         ║  FUNCTIONS REFERENCED                     : 7
  391.         ║  AVERAGE # OF FUNCTIONS/FILE              : 3.50
  392.         ║  AVERAGE # OF BYTES/FUNCTION              : 27.43
  393.         ║  AVERAGE # OF COMMENT BYTES/FUNCTION      : 0.00
  394.         ║  AVERAGE # OF LINES/FUNCTION              : 3.43
  395.         ║  AVERAGE # OF BYTES/LINE                  : 8.00
  396.         ║  AVERAGE # OF CONTROL STATEMENTS/FUNCTION : 0.14
  397.         ║  AVERAGE # OF BRACE LEVELS/FUNCTION       : 1.00
  398.         ╚═══════════════════════════════════════════════════════════════
  399.  
  400.  
  401.         ╔═══════════════════════════════════════════════════════════════
  402.         ║                               FILE INFORMATION
  403.         ╚═══════════════════════════════════════════════════════════════
  404.  
  405.         FILE             SIZE/ SCANNED         LINES/SCANNED
  406.         STDIO.H     :    7467/       0 bytes,     340/      0 lines,    0
  407.         functions (* included *) <G:/C700/INCLUDE/> (7467, 1.000)
  408.         X.H         :     217/       0 bytes,     16/      0 lines,     0
  409.         functions (* included *) <C:/C/CXT/DOC/> (217, 1.000)
  410.         X1.C        :     212/    7896 bytes,      23/    379 lines,    3
  411.         functions (* 2 files included *) <C:/C/CXT/DOC/> (212, 1.000)
  412.         X2.C        :     352/    8036 bytes,     35/    391 lines,     4
  413.         functions (* 2 files included *) <C:/C/CXT/DOC/> (352, 1.000)
  414.  
  415.         TOTAL       :    8248/   15932 bytes,     414/    770 lines,    7
  416.         functions in 2 of 4 files
  417.  
  418.         2 (* included *) files
  419.         program code: 8248 bytes, program comment: 0 bytes
  420.         average program code/filesize ratio 1.000
  421.         see exact file  values  above:  ...  (code  bytes,  code/filesize
  422.         ratio)
  423.  
  424.         END OF CFT OUTPUT: CFT.LST
  425.  
  426.  
  427.                                       - 7 -
  428.  
  429.  
  430.  
  431.         Second, the two source files are processed by CST to get the data
  432.         types and their relations with the following command line:
  433.  
  434.              CST -rapP -TMSC70,L -cs -Cs -na -Zs -z x?.c
  435.  
  436.         The resulting screen output during processing is as follows:
  437.  
  438.         SCREEN OUTPUT
  439.  
  440.         CST (TM) C STRUCTURE TREE GENERATOR 2.12   Copyright (C) J.M 1988
  441.  
  442.         processing C:/C/X1.C
  443.         processing C:/C/X2.C
  444.  
  445.         writing output file CST.LST
  446.  
  447.         END OF SCREEN OUTPUT
  448.  
  449.         The contents of the output file CST.LST is listed below:
  450.  
  451.         CST OUTPUT: CST.LST
  452.  
  453.         ╔═══════════════════════════════════════════════════════════════
  454.         ║   CST (TM) C STRUCTURE TREE GENERATOR 2.12   Copyright (C) J.M
  455.         ╚═══════════════════════════════════════════════════════════════
  456.  
  457.         ╔═══════════════════════════════════════════════════════════════
  458.         ║        CST is part of CXT - the C EXPLORATION TOOLS
  459.         ║        You are expressly prohibited from selling this software
  460.         ║        of it in any form, distributing it with another product
  461.         ║        removing this notice. This software is Copyright (C)
  462.         ║        File creation date: Sat Nov 21 13:08:25 1992
  463.         ╚═══════════════════════════════════════════════════════════════
  464.  
  465.         ╔═══════════════════════════════════════════════════════════════
  466.         ║  EXAMPLE: struct _test  (9999) <BSUCE> [<TEST.C, 90>] <TEST.C,
  467.         ║  - struct _test: type specifier
  468.         ║  - (9999)      : data type cross reference number
  469.         ║  - <BSUCE>     : data type: B=basic type, S=struct, U=union, C
  470.         ║  - <TEST.C, 90>: file name, line number of type definition
  471.         ║  - <TEST.C, 60>: file name, line number of basic type definiti
  472.         ╚═══════════════════════════════════════════════════════════════
  473.  
  474.  
  475.         ╔═══════════════════════════════════════════════════════════════
  476.         ║                  DATA STRUCTURE CALLTREE HIERARCHY LISTING
  477.         ╚═══════════════════════════════════════════════════════════════
  478.  
  479.         BYTE  (1) <B> <X.H, 2> <STDIO.H, 44>
  480.  
  481.         DWORD  (2) <B> <X.H, 4> <STDIO.H, 105>
  482.  
  483.         FILE  (3) <S> <STDIO.H, 50> <STDIO.H, 43>
  484.          ├ *_ptr ─── char
  485.          ├ _cnt ──── int
  486.  
  487.  
  488.                                       - 8 -
  489.  
  490.  
  491.          ├ *_base ── char
  492.          ├ _flag ─── char
  493.          └ _file ─── char
  494.  
  495.         S_XT  (4) <S> <X.H, 7>
  496.          ├ a ─────────── BYTE
  497.          ├ b ─────────── WORD
  498.          ├ string[20] ── BYTE
  499.          └ *fptr ─────── FILE  ...relations shown at (3)
  500.  
  501.         VOID  (5) <B> <X.H, 1>
  502.  
  503.         WORD  (6) <B> <X.H, 3> <STDIO.H, 45>
  504.  
  505.         char  ...relations shown at (1)
  506.  
  507.         fpos_t  ...relations shown at (2)
  508.  
  509.         int  ...relations shown at (6)
  510.  
  511.         long  ...relations shown at (2)
  512.  
  513.         size_t  (7) <B> <STDIO.H, 26>
  514.  
  515.         struct _iobuf  ...relations shown at (3)
  516.  
  517.         struct _s_x  ...relations shown at (4)
  518.  
  519.         unsigned int  ...relations shown at (7)
  520.  
  521.         void  ...relations shown at (5)
  522.  
  523.  
  524.         ╔═══════════════════════════════════════════════════════════════
  525.         ║               TOTAL NUMBER OF DATA TYPES REFERENCED :    7
  526.         ║               NUMBER OF DATA TYPE DEFINITIONS       :    2
  527.         ║               DIRECTED CALL GRAPH WITH 7 NODES AND 5 CONNECTIO
  528.         ╚═══════════════════════════════════════════════════════════════
  529.  
  530.  
  531.         ╔═══════════════════════════════════════════════════════════════
  532.         ║                          DATA TYPE CALL STATISTICS
  533.         ╚═══════════════════════════════════════════════════════════════
  534.  
  535.         DWORD  (2) <B> <0 uses>
  536.           alias: fpos_t
  537.                  long
  538.  
  539.         S_XT  (4) <S> <0 uses>
  540.           alias: struct _s_x
  541.  
  542.         VOID  (5) <B> <0 uses>
  543.           alias: void
  544.  
  545.         size_t  (7) <B> <0 uses>
  546.           alias: unsigned int
  547.  
  548.  
  549.                                       - 9 -
  550.  
  551.  
  552.  
  553.         FILE  (3) <S> <1 uses>
  554.           alias: struct _iobuf
  555.  
  556.         WORD  (6) <B> <2 uses>
  557.           alias: int
  558.  
  559.         BYTE  (1) <B> <6 uses>
  560.           alias: char
  561.  
  562.  
  563.         ╔═══════════════════════════════════════════════════════════════
  564.         ║                         DATA TYPE CALLER-MEMBER LIST
  565.         ╚═══════════════════════════════════════════════════════════════
  566.  
  567.               <no callers>
  568.         DWORD  (2) <0, 0>
  569.               <no members>
  570.  
  571.               <no callers>
  572.         S_XT  (4) <0, 4>
  573.               BYTE  (1) <2>
  574.               WORD  (6) <1>
  575.               FILE  (3) <1>
  576.  
  577.               <no callers>
  578.         VOID  (5) <0, 0>
  579.               <no members>
  580.  
  581.         fpos_t  ...relations shown at (2)
  582.  
  583.         long  ...relations shown at (2)
  584.  
  585.               <no callers>
  586.         size_t  (7) <0, 0>
  587.               <no members>
  588.  
  589.         struct _s_x  ...relations shown at (4)
  590.  
  591.         unsigned int  ...relations shown at (7)
  592.  
  593.         void  ...relations shown at (5)
  594.  
  595.               struct _s_x  (4) <1>
  596.         FILE  (3) <1, 5>
  597.               char  (1) <4>
  598.               int  (6) <1>
  599.  
  600.         struct _iobuf  ...relations shown at (3)
  601.  
  602.               struct _iobuf  (3) <1>
  603.               struct _s_x  (4) <1>
  604.         WORD  (6) <2, 0>
  605.               <no members>
  606.  
  607.         int  ...relations shown at (6)
  608.  
  609.  
  610.                                      - 10 -
  611.  
  612.  
  613.  
  614.               struct _iobuf  (3) <4>
  615.               struct _s_x  (4) <2>
  616.         BYTE  (1) <6, 0>
  617.               <no members>
  618.  
  619.         char  ...relations shown at (1)
  620.  
  621.  
  622.         ╔═══════════════════════════════════════════════════════════════
  623.         ║                        DATA TYPE CALL REFERENCE LIST
  624.         ╚═══════════════════════════════════════════════════════════════
  625.  
  626.         BYTE  (1) [1]: 44
  627.               [1]: 44 46 47 48 44 46 47 48
  628.               [2]: 8 10 8 10
  629.  
  630.         DWORD  (2) [1]: 105
  631.  
  632.         FILE  (3) [1]: 43
  633.               [2]: 11 11
  634.  
  635.         S_XT  (4) [2]: 7
  636.  
  637.         VOID  (5) [2]: 1
  638.  
  639.         WORD  (6) [1]: 45
  640.               [1]: 45 45
  641.               [2]: 9 9
  642.  
  643.         char  ...relations shown at (1)
  644.  
  645.         fpos_t  ...relations shown at (2)
  646.  
  647.         int  ...relations shown at (6)
  648.  
  649.         long  ...relations shown at (2)
  650.  
  651.         size_t  (7) [1]: 26
  652.  
  653.         struct _iobuf  ...relations shown at (3)
  654.  
  655.         struct _s_x  ...relations shown at (4)
  656.  
  657.         unsigned int  ...relations shown at (7)
  658.  
  659.         void  ...relations shown at (5)
  660.  
  661.         FILE INDEX LIST
  662.            1 G:/C700/INCLUDE/STDIO.H
  663.            2 C:/C/CXT/DOC/X.H
  664.            3 C:/C/CXT/DOC/X1.C
  665.            4 C:/C/CXT/DOC/X2.C
  666.  
  667.  
  668.         ╔═══════════════════════════════════════════════════════════════
  669.  
  670.  
  671.                                      - 11 -
  672.  
  673.  
  674.         ║                 DATA STRUCTURE NESTING  (NL...nestinglevel)
  675.         ╚═══════════════════════════════════════════════════════════════
  676.  
  677.         S_XT  (4) <S> (NL 0)
  678.          └ FILE  (3) <S> (NL 1)
  679.             ├ char  (1) <B> (NL 2)
  680.             └ int  (6) <B>
  681.  
  682.  
  683.         ╔═══════════════════════════════════════════════════════════════
  684.         ║                   DATA TYPE TABLE: G:/C700/INCLUDE/STDIO.H
  685.         ╚═══════════════════════════════════════════════════════════════
  686.  
  687.         LINE   DATA TYPE   [ELEMENTS,SUBELEMENTS]
  688.         43   : FILE  (3) <S> [5,0]
  689.                  alias: struct _iobuf
  690.         [1 DATA TYPES, AVERAGE VALUES: 5.00, 0.00]
  691.  
  692.  
  693.         ╔═══════════════════════════════════════════════════════════════
  694.         ║                      DATA TYPE TABLE: C:/C/CXT/DOC/X.H
  695.         ╚═══════════════════════════════════════════════════════════════
  696.  
  697.         LINE   DATA TYPE   [ELEMENTS,SUBELEMENTS]
  698.         7    : S_XT  (4) <S> [4,1]
  699.                  alias: struct _s_x
  700.         [1 DATA TYPES, AVERAGE VALUES: 4.00, 1.00]
  701.  
  702.  
  703.         ╔═══════════════════════════════════════════════════════════════
  704.         ║  FILES REFERENCED                : 2
  705.         ║  DATA TYPES REFERENCED           : 2
  706.         ║  AVERAGE # OF TYPES/FILE         : 1.00
  707.         ║  AVERAGE # OF ELEMENTS/TYPE      : 4.50
  708.         ║  AVERAGE # OF SUBSTRUCTURES/TYPE : 0.50
  709.         ╚═══════════════════════════════════════════════════════════════
  710.  
  711.  
  712.         ╔═══════════════════════════════════════════════════════════════
  713.         ║                               FILE INFORMATION
  714.         ╚═══════════════════════════════════════════════════════════════
  715.  
  716.         FILE             SIZE/ SCANNED         LINES/SCANNED
  717.         STDIO.H     :    7467/       0 bytes,     340/      0 lines,    1
  718.         data types (* included *) <G:/C700/INCLUDE/> (7467, 1.000)
  719.         X.H         :     217/       0 bytes,     16/      0 lines,     1
  720.         data types (* included *) <C:/C/CXT/DOC/> (217, 1.000)
  721.         X1.C        :     212/    7896 bytes,      23/    379 lines,    0
  722.         data types (* 2 files included *) <C:/C/CXT/DOC/> (212, 1.000)
  723.         X2.C        :     352/    8036 bytes,     35/    391 lines,     0
  724.         data types (* 2 files included *) <C:/C/CXT/DOC/> (352, 1.000)
  725.  
  726.         TOTAL       :    8248/   15932 bytes,     414/    770 lines,    2
  727.         data types in 2 of 4 files
  728.  
  729.         2 (* included *) files
  730.  
  731.  
  732.                                      - 12 -
  733.  
  734.  
  735.         program code: 8248 bytes, program comment: 0 bytes
  736.         average program code/filesize ratio 1.000
  737.         see exact file  values  above:  ...  (code  bytes,  code/filesize
  738.         ratio)
  739.  
  740.         END OF CST OUTPUT: CST.LST
  741.  
  742.         This  short example session gives only a small overview about the
  743.         capabilities of CFT and CST.  There is (nearly) no limitation  in
  744.         the number of files to process,  nor is there a limitation in the
  745.         complexity of the relationship between the items to  analyse  and
  746.         to  display.  Test  CFT  and  CST with your own programs or,  for
  747.         example,  with your compiler include files,  to get a feeling for
  748.         what these tools can be useful to you and your work.
  749.  
  750.         For  a  complete  description  of  the available commands see the
  751.         CFT_CST.DOC file.  If you have the  BRIEF,  MicroEMACS  or  QEDIT
  752.         editor  you  can  use the generated database from CFT and CST and
  753.         try the macro functions to access items in  multiple  files  with
  754.         just a keystroke.
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.                                      - 13 -
  794.